package com.strange3.utils.modules.activablemodule
{
	import com.strange3.utils.modules.ModuleLoadableContentCreator;
	
	import flash.events.Event;
	
	/**
	 * Klasa obsugujca aktywowanie modulu ( HANDLER-like design patter ) 
	 * @author strange3studio
	 * 
	 */
	public class ModuleActivator
	{
		private var _m:ModuleLoadableContentCreator;
		
		public function ModuleActivator(m:ModuleLoadableContentCreator):void {
			_m = m;
		}
		
		public function activate():void	{
			
			// sprawdzamy czy modul zaladowal swoja zawartos
			if(_m.contentLoaded) {
				
				// tak, aktywujemy go
				_m.activate();
			} else {
				
				// nie, nasluchujemy momentu w kturym zaladuje
				_m.addEventListener(Event.COMPLETE, onModuleContentLoaded);
			}
		}
		
		private function onModuleContentLoaded(e:Event):void {
			
			// juz nie potrzebujemy tego listenera
			_m.removeEventListener(Event.COMPLETE, onModuleContentLoaded);
			
			_m.activate();	
		} 
		
	}
}